package com.qys.livesMall.product.entity;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;

import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;

/**
 * <p>
 * H2ShopGoodsinfo对象
 * </p>
 *
 * @author gmx
 * @since 2023-05-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("h2_product_goodsinfo")
public class H2ProductGoodsinfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id",type=IdType.ASSIGN_ID)
    @JSONField(serializeUsing = ToStringSerializer.class)
    private Long id;
    /**
     * spu名字，不能为空
     */
    @TableField("name")
    @NotNull(message = "商品名字不能为空")
    private String name;
    /**
     * 品牌id
     */
    @TableField("brand_id")
    private Long brandId;
    /**
     * 品牌名字
     */
    @TableField("brand_name")
    private String brandName;
    /**
     * 一级分类,不能为空
     */
    @TableField("category_one_id")
    @NotNull(message = "请选择一级分类")
    private Long categoryOneId;
    /**
     * 二级分类,不能为空
     */
    @TableField("category_two_id")
    @NotNull(message = "请选择二级分类")
    private Long categoryTwoId;
    /**
     * 简介
     */
    @TableField("intro")
    private String intro;
    /**
     * 最大价格,不能为空
     */
    @TableField("price_min")
    @NotNull(message = "最大价格不能为空")
    private BigDecimal priceMin;
    /**
     * 最小价格,不能为空
     */
    @TableField("price_max")
    @NotNull(message = "最小价格不能为空")
    private BigDecimal priceMax;
    /**
     * 价格,不能为空
     */
    @TableField("price")
    @NotNull(message = "价格不能为空")
    private BigDecimal price;
    /**
     * 图片,不能为空
     */
    @TableField("image")
    @NotNull(message = "图片不能为空")
    private String image;
    /**
     * 图片列表
     */
    @TableField("images")
    private String images;
    /**
     * 视频列表
     */
    @TableField("video_list")
    private String videoList;
    /**
     * 介绍
     */
    @TableField("content")
    private String content;
    /**
     * 总库存
     */
    @TableField("num")
    private Integer num;
    /**
     * 是否上架
     */
    @TableField("is_marketable")
    private Integer isMarketable;
    /**
     * 是否删除,0:未删除，1：已删除
     */
    @TableField("is_delete")
    private Integer isDelete;

    /**
     * 审核状态，0：未审核，1：已审核，2：审核不通过
     */
    @TableField("status")
    private Integer status;
    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;
    /**
     * 创建时间
     */
    @JsonIgnore
    @TableField("create_time")
    private LocalDateTime createTime;
    /**
     * 更新人
     */
    @TableField("update_by")
    private String updateBy;
    /**
     * 更新时间
     */
    @JsonIgnore
    @TableField("update_time")
    private LocalDateTime updateTime;
    @TableField("distributor_id")
    private Long distributorId=1L;

}
